namespace ext.data
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// An implementation of Ext.data.DataProxy that simply passes the data specified in its constructor
	/// to the Reader when its load method is called.
	/// </summary>
	/// <definedin>src\data\MemoryProxy.js</definedin>
	[ScriptName("MemoryProxy")]
	[ScriptNamespace("Ext.data")]
	[Imported()]
	public partial class MemoryProxy : ext.data.DataProxy
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="data">The data object which the Reader uses to construct a block of Ext.data.Records.</param>
		public MemoryProxy(object data)
		{
		}
		
		/// <summary>Constructor</summary>
		public MemoryProxy()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// Fires if an exception occurs in the Proxy during data loading. Note that this event is also relayed
		/// through {@link Ext.data.Store}, so you can listen for it directly on any Store instance.
		/// </summary>
		/// <definedin>src\data\MemoryProxy.js</definedin>
		[ScriptName("loadexceptionEventName")]
		public const string LoadexceptionEventName = "loadexception";
		#endregion
		
		#region Methods
		/// <summary>MemoryProxy implementation of DataProxy#doRequest</summary>
		/// <definedin>src\data\MemoryProxy.js</definedin>
		/// <param name="action"></param>
		/// <param name="rs">If action is load, rs will be null</param>
		/// <param name="params">
		/// An object containing properties which are to be used as HTTP parameters
		/// for the request to the remote server.
		/// </param>
		/// <param name="reader">
		/// The Reader object which converts the data
		/// object into a block of Ext.data.Records.
		/// </param>
		/// <param name="callback">
		/// The function into which to pass the block of Ext.data.Records.
		/// The function must be passed &lt;ul&gt;
		/// &lt;li&gt;The Record block object&lt;/li&gt;
		/// &lt;li&gt;The &quot;arg&quot; argument from the load function&lt;/li&gt;
		/// &lt;li&gt;A boolean success indicator&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the callback function is executed. Defaults to the browser window.</param>
		/// <param name="arg">An optional argument which is passed to the callback as its second parameter.</param>
		[ScriptName("doRequest")]
		public void DoRequest(string action, ext.data.RecordClass rs, object @params, ext.data.DataReader reader, System.Delegate callback, object scope, object arg)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>MemoryProxy implementation of DataProxy#doRequest</summary>
		/// <definedin>src\data\MemoryProxy.js</definedin>
		/// <param name="action"></param>
		/// <param name="rs">If action is load, rs will be null</param>
		/// <param name="params">
		/// An object containing properties which are to be used as HTTP parameters
		/// for the request to the remote server.
		/// </param>
		/// <param name="reader">
		/// The Reader object which converts the data
		/// object into a block of Ext.data.Records.
		/// </param>
		/// <param name="callback">
		/// The function into which to pass the block of Ext.data.Records.
		/// The function must be passed &lt;ul&gt;
		/// &lt;li&gt;The Record block object&lt;/li&gt;
		/// &lt;li&gt;The &quot;arg&quot; argument from the load function&lt;/li&gt;
		/// &lt;li&gt;A boolean success indicator&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the callback function is executed. Defaults to the browser window.</param>
		/// <param name="arg">An optional argument which is passed to the callback as its second parameter.</param>
		[ScriptName("doRequest")]
		public void DoRequest(string action, ext.data.RecordClass[] rs, object @params, ext.data.DataReader reader, System.Delegate callback, object scope, object arg)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>
		/// Fires if an exception occurs in the Proxy during data loading. Note that this event is also relayed
		/// through {@link Ext.data.Store}, so you can listen for it directly on any Store instance.
		/// </summary>
		/// <definedin>src\data\MemoryProxy.js</definedin>
		[ScriptName("loadexception")]
		public event ext.auto.Delegate_ext_data_MemoryProxy_And_System_Object_And_System_Object_And_ext_Error Loadexception;
		#endregion
	}
}
